package com.seeyon.apps.kk.dao;

import com.seeyon.ctp.common.exceptions.BusinessException;
import com.seeyon.ctp.common.po.affair.CtpAffair;
import com.seeyon.ctp.organization.bo.V3xOrgDepartment;
import com.seeyon.ctp.organization.bo.V3xOrgLevel;
import com.seeyon.ctp.organization.bo.V3xOrgMember;
import com.seeyon.ctp.organization.bo.V3xOrgPost;

/**
 * @author 
 * @date 2015-8-18下午9:52:39
 * @Copyright(c) Beijing Seeyon Software Co.,LTD
 */
public interface SyncOrgDao {

    /**
     * 根据编码获得职务对象
     * @param accountId 单位ID
     * @param property 属性名
     * @param feildvalue 属性值
     * @return 对象
     */
    public V3xOrgLevel getLevelByCode(Long accountId, String property, Object feildvalue);

    /**
     * 根据编码获得人员对象
     * @param accountId 单位ID
     * @param property 属性名
     * @param feildvalue 属性值
     * @return 对象
     */
    public V3xOrgMember getMemberByCode(Long accountId, String property, Object feildvalue);

    /**
     * 根据编码获得岗位对象
     * @param accountId 单位ID
     * @param property 属性名
     * @param feildvalue 属性值
     * @return 对象
     */
    public V3xOrgPost getPostByCode(Long accountId, String property, Object feildvalue);

    /**
     * 根据编码获得部门对象
     * @param accountId 单位ID
     * @param property 属性名
     * @param feildvalue 属性值
     * @return 对象
     */
    public V3xOrgDepartment getDeptByCode(Long accountId, String property, Object feildvalue);

	/**
	 * 获取指定回退的affair
	 * @param summaryId
	 * @param userId
	 * @return
	 * @throws BusinessException
	 */
	public CtpAffair getAffair(Long summaryId, Long userId) throws BusinessException;
}
